<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 选择结构之switch   =>  多分支
    // (1) switch中的表达式一般是一个变量/常量  
    // (2) case:  列举出变量可能出现的情况  
    // (3) 针对不同的情况执行对应语句

    // 如何比较
    // switch中的表达式和case中的常量 依次按顺序做全等比较(=== 数值和类型均相等),如果全等则执行对应
    // 的 执行语句,语句执行完毕 遇到break,跳出当前的switch结构,都不满足则执行default的语句。

    // break的作用：是跳出switch结构，如果没有break，则继续执行下面分支的的语句（而不进行判断）。

    // switch(表达式){
    //     case 常量1:  执行语句1;
    //     case 常量2:  执行语句2;
    //     case 常量3:  执行语句3;
    //     case 常量4:  执行语句4;
    //     case 常量5:  执行语句5;
    //     case 常量6:  执行语句6;
    //     default:  除了上述以外的其他情况(else)
    // }

    // switch穿透:
    // switch中的表达式和case中的常量 依次按顺序做全等比较(=== 数值和类型均相等),如果全等则执行对应
    // 的 执行语句,但是由于没有break,此时语句执行完毕,并不会跳出当前的switch结构,而是继续执行下面分支的语句
    // 而不经过判断


    // 成绩等级的判断
    var grade = Math.round(Math.random() * 100); // 0-100
    console.log(grade);
    var shi = Math.floor(grade / 10);

    debugger;

    switch (shi) {
      case 0:
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
        document.write(grade + "分,不及格");
        break;
      case 6:
        document.write(grade + "分,及格");
        break;
      case 7:
        document.write(grade + "分,一般");
        break;
      case 8:
        document.write(grade + "分,良好");
        break;
      case 9:
        document.write(grade + "分,优秀");
        break;
      case 10:
        document.write(grade + "分,6666");
        break;
      default:
        document.write("System Error!");
        break;
    }











  </script>
</body>

</html>